package cs104

import (
	"IEC104_Slave/asdu"
	"time"
)

// SlaveHandlerInterface is the interface of server handler
type SlaveHandlerInterface interface {
	InterrogationHandler(asdu.Connect, *asdu.ASDU, asdu.QualifierOfInterrogation) error
	CounterInterrogationHandler(asdu.Connect, *asdu.ASDU, asdu.QualifierCountCall) error
	ReadHandler(asdu.Connect, *asdu.ASDU, asdu.InfoObjAddr) error
	ClockSyncHandler(asdu.Connect, *asdu.ASDU, time.Time) error
	ResetProcessHandler(asdu.Connect, *asdu.ASDU, asdu.QualifierOfResetProcessCmd) error
	DelayAcquisitionHandler(asdu.Connect, *asdu.ASDU, uint16) error
	ASDUHandler(asdu.Connect, *asdu.ASDU) error
	LoopListenData(asdu.Connect) error
	// SingleCommandHandler 单点遥控
	SingleCommandHandler(c asdu.Connect, asduPack *asdu.ASDU, point asdu.SingleCommandInfo) error
	SetpointFloatCommandHandler(c asdu.Connect, asduPack *asdu.ASDU, point asdu.SetpointCommandFloatInfo) error
}
